///////////////////////////////////////////////////////////
//  Choices.h
//  Implementation of the Class Choices
//  Created on:      19-Aug-2013 10:19:49 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_B919B91A_3A21_492e_98C0_61F0F1176A8C__INCLUDED_)
#define EA_B919B91A_3A21_492e_98C0_61F0F1176A8C__INCLUDED_

#include "../Interfaces/IChoices.h"
#include <vector>

namespace Data
{
class Choices : public IChoices
{

public:
	Choices();
	Choices(const Choices& anotherChoices);
	virtual ~Choices();
	virtual IObject::ObjectType GetType() const;
	virtual void AddChoice(const String_t& name);
	virtual String_t GetChoice(int index) const;
	virtual int CountChoices() const;
	virtual void RemoveChoice(unsigned int index);
  virtual bool IsChoiceExist(const String_t& name) const;
	virtual IObject* Clone();
	virtual String_t ToXML();
  virtual String_t operator[](unsigned int index);

private:
	IObject::ObjectType m_type;
	std::vector<String_t> m_choiceDatas;

};
}
#endif // !defined(EA_B919B91A_3A21_492e_98C0_61F0F1176A8C__INCLUDED_)
